﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Wicresoft.UnifyShow.Business
{
    public interface IProblem
    {
        //获取变更总数
        Decimal GetProblemCountBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime); 
        //问题总数GroupTime
        List<IncidentAndChangeModel> GetProblemCountGroupTimeBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime);
        //服务统计 已解决问题， 所有问题
        List<SiteBranchAndWorkListModel> GetProblemInfoList(int? site, int? bnid, DateTime? sTime, DateTime? eTime);

        List<SiteBranchAndWorkListModel> GetProblemInfoListBySystemName(int? site, string systemname, DateTime? sTime, DateTime? eTime);
        //已确定根本原因的问题数量/百分比
        Decimal GetReasonProblemCountBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime); 
        //事件升级问题数量
         Decimal GetSolveProblemCountBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime); 
        //根本解决的问题数量和百分比
         List<IncidentAndChangeModel> GetEscalationProblemCountBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime);
        //关闭问题数量
        Decimal GetClosedProblemCountBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime);
        //关闭完成问题数量
        Decimal GetClosedAndCompleteProblemCountBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime);
        //重大问题数量
        List<IncidentAndChangeModel> GetProblemImpactSortCountBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime);
        //平均问题诊断时间
        List<IncidentAndChangeModel> GetAvgtimeProblemBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime);
        //供应商解决的问题数量/百分比
        Decimal GetProblemFirmCountBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime);
        //超时问题数量/百分比
        Decimal GetProblemTimeOutCountBySiteAndBusiness(int? siteid, int? bnid, DateTime? sftime, DateTime? eftime);

        int GetUnResolvedProblemCount(int? site, DateTime? sTime, DateTime? eTime);
    }
}
